package com.doyoulike.dao.primary;

import com.doyoulike.entity.GenTable;
import com.doyoulike.vo.in.PageGenTableVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 表DAO接口
 * @author 独舟
 * @version 2020-03-20
 */
@Repository
public interface GenTableDao {

    /**
     * 根据id查询表（级联查询列、子表）
     * @param genTable
     * @return
     */
    GenTable get(GenTable genTable);

    /**
     * 根据ids查询表（级联查询列、子表）
     * @param ids
     * @return
     */
    List<GenTable> getByIds(List<Long> ids);

    /**
     * 根据表名查询表（级联查询列、子表）
     * @param name
     * @return
     */
    GenTable getByName(@Param("name") String name);

    /**
     * 查询表 list
     * @param pageGenTableVO
     * @return
     */
    List<GenTable> findList(@Param("listQueryVO") PageGenTableVO pageGenTableVO);

    /**
     * 添加
     * @param genTable
     * @return
     */
    Integer insert(GenTable genTable);

    /**
     * 更新
     * @param genTable
     * @return
     */
    Integer update(GenTable genTable);

    /**
     * 根据表名删除
     * @param name
     * @return
     */
    Integer deleteByName(@Param("name") String name);

    /**
     * 根据表名list删除
     * @param name
     * @return
     */
    Integer deleteByNameList(List<String> name);
}